package 作业2;

import java.util.Scanner;
public class Bank {
    Scanner scan = new Scanner(System.in);//创建Scanner对象;
    //定义欢迎语句;
    static String string1 = "--------------欢迎来到招商银行--------------";
    //定义sum变量用于存储账户余额;
    private double sum = 0;
    int flag = 1;//作用是退出操作;
    private String name = null;
    //定义构造方法用于开户;
    public Bank(double sum)
    {
        this.sum = sum;
        System.out.println("请先输入开户的信息");
        System.out.print("请输入你的姓名：");
        name = scan.nextLine();//获取用户输入的姓名;
        System.out.print("输入你的账号：");
        String str01 = scan.nextLine();//获取输入的账号;
        System.out.print("请输入你的密码：");
        String str02 = scan.nextLine();//获取输入的密码;
        for(;;)
        {
            System.out.print("请再次输入你的密码：");
            String code1 = scan.nextLine();//获取再次输入的密码;
            if(str02.equals(code1) == true)//两次输入的密码一样;
            {
                System.out.println(name+" 开户成功！  "+"账户余额为："+sum);
                System.out.println("是否执行用户的登录操作：\n①登录操作输入1\n②退出操作输入2");
                int num2 = scan.nextInt();
                if(num2 == 1)//执行用户登录的操作;
                {
                    scan.nextLine();//吃掉回车符--->'\n';
                    for(;;)//循环的好处是，如果账号或密码错误，可以重复此过程;
                    {
                        System.out.print("请输入账号：");
                        String str1 = scan.nextLine();
                        if(str1.equals(str01) == false)//账号错误;
                        {
                            System.out.println("账号输入错误，请重新输入!");
                            continue;
                        }
                        System.out.print("请输入密码：");
                        String str2 = scan.nextLine();
                        if(str2.equals(str02) == false)//密码错误;
                        {
                            System.out.println("密码输入错误，请重新输入!");
                            continue;
                        }
                        if(str1.equals(str01) == true && str2.equals(str02) == true)//用户登录成功;
                        {
                            while(true)//因为不知道用户执行几次该操作，故需要使用while()循环来达到更多相同的操作次数;
                            {
                                System.out.println("登陆成功！\n请选择以下从操作：\n①存款(请输入1)\n②取款(请输入2)\n③退出(请输入3)");
                                int num1 = scan.nextInt();
                                //执行存款操作;
                                if(num1 == 1) add();//调用add()方法;
                                else if(num1 == 2) withdrawal();//调用menu()方法;
                                else if(num1 == 3)//退出该系统,并打印欢迎下次光临语句;
                                {
                                    System.out.println("---------请携带好个人的随身财物,欢迎下次光临招商银行---------");
                                    flag = 0;
                                    break;
                                }
                                else System.out.println("输入无效!");
                            }
                        }
                        if(flag == 0) break;
                    }
                }
                else if(num2 == 2)//退出系统;
                {
                    System.out.println("---------请携带好个人的随身财物,欢迎下次光临招商银行---------");
                }
                else System.out.print("无效输入！");
            }
            if(flag == 0) break;
            else if(str02.equals(code1) == false)//两次输入的密码不相同;
            {
                System.out.println("前后两次输入的密码不同！");
                continue;//向上返回到再次输入密码的地方;
            }
        }
    }
    public void add()//定义存款方法;
    {
        System.out.print("请输入你要存入的金额：");
        double money = scan.nextDouble();
        sum = sum+ money;//存入到count中便于记录当前金额的个数;
        System.out.println(name+"您好!"+"你的账户已存入 "+money+" 元 "+"当前余额为 "+ sum +" 元");
    }
    public void withdrawal()//定义取款方法;
    {
        System.out.println("请输入您要取出的金额：");
        double money = scan.nextDouble();
        sum = sum - money;
        if(sum>=0) System.out.println(name+"您好"+"你的账户已取出还"+money+" 元 "+" 当余额为 "+sum+" 元");
        else System.out.println("对不起，你的余额不足！");
    }
    //设置sum的值;
    public void setSum(double sum)
    {
        this.sum = sum;
    }
    //获取sum的值;
    public double getSum()
    {
        return sum;
    }
    public static void main(String[] args){
        System.out.println(Bank.string1);//在主方法中打印欢迎语句;
        new Bank(90);//创建Bank的匿名对象，进行开户操作,并赋初值;
    }
}
